home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-02-20 | 63.5 KB | 1,323 lines |
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 1
-
-
- UMB_DRVR.SYS Device Driver
- UMB provider for DOS 5.0 on 286 / 386 / 486 systems
- Copyright (C) 1991, 1992 All Rights Reserved
-
- Christopher Blum CompuServe: 76625,1041
- 1022 East Wayne Avenue INTERNET: 76625.1041@compuserve.com
- Wooster, Ohio 44691 BIX: cblum
- (216)262-3786
-
-
- IMPORTANT INFORMATION - DISTRIBUTION AND LICENSING
-
-
- UMB_DRVR.SYS carries no warranties expressed or implied. It is
- solely up to the user to determine its suitability for use on his/her
- machine.
- This program is distributed as a self-extracting file containing
- the device driver and its associated documentation. Copying and
- redistribution is encouraged, but must be the original, unmodified
- file containing this documentation, and the transfer must not carry
- any fee or charge specific to this program: i.e. general BBS access
- or line charges are OK, but no 'download fee' or similar charge. This
- means that BBS operators may post this file for download, but may not
- charge a specific fee for it, and 'Distribution houses' may charge a
- disk-duplication fee, but not a specific charge for the program.
- UMB_DRVR.SYS is made available on a 'try before you buy' basis.
- It is not crippled in any way, and has no 'advertising'. The latest
- version will be available on CompuServe in the IBM forum ( 'GO IBMSYS',
- lib 1 ).
- Personal use license ( U.S. funds ) is $25 which should be mailed
- to the above address if the program is used after a reasonable trial
- period ( 30 days ). Please use the registration form at the end of this
- document. Users who register receive the latest version of the program,
- and may at any time send a self-addressed *and postpaid* diskette mailer
- and a diskette to receive further updated versions.
- Corporate users must contact me for corporate rate or site license
- arrangements.
-
-
- TECHNICAL SUPPORT
-
-
- Technical support, including pre-registration questions or install
- assistance, is available at your expense at the above telephone number.
- Please be aware that I am in the Eastern US time zone ( GMT-4 or GMT-5
- depending on season ) and try to call at a reasonable hour: i.e. 9 AM to
- Noon, 1 PM to 5PM, or 7 PM to 10 PM. Saturday is OK, but *PLEASE* avoid
- Sundays. I can also be contacted via Email on CompuServe, BIX and
- INTERNET ( IDs above ) - I monitor my mail almost every day. It is not
- necessarily a good idea to leave me messages on CompuServe in the forum
- sections unless your question or discussion is of general interest. The
- Postal Service may also be used ( address above ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 2
-
-
- INTRODUCTION
-
-
- To start with, some definitions are in order. Hex addresses are
- given in full hex notation as opposed to Intel segment:offset form,
- i.e. A0000 in full hex is the same as A000:0 in seg:off form. The
- memory sizes are referred to in Kilobytes ( 1,024 decimal ), Megabytes
- ( 1,048,576 decimal ), and Gigabytes ( 1,073,741,824 decimal ).
-
- BASE MEMORY - Ram available to DOS and programs from location 0 to
- 640K-1 ( 9FFFF hex ). All programs have access to this area.
-
- UPPER MEMORY - The area between 640K ( A0000 ) and 1M-1 ( FFFFF ). This
- is the area where roms on expansion cards reside ( usually ), where
- the EMS base area ( the 'window' into EMS memory ) is ( usually ), and
- where Upper Memory Blocks ( UMBs ) are created for loading device
- drivers, programs, etc. 'high' with the DOS 5 'DEVICEHIGH' and
- 'LOADHIGH' commands. DOS does not create UMBs itself, but rather
- relies on a program called a 'UMB provider' to supply them. DOS then
- manages the upper memory area as an extention of base memory with
- special characteristics when you use the 'DOS=xxxx,UMB' command.
- Programs like UMB_DRVR, QEMM, 386^MAX, and others are UMB providers.
-
- HIGH MEMORY AREA ( HMA ) - The HMA is memory from 1M ( 100000 ) to
- 1M+64K-16 ( 10FFF0 ), i.e. the first 64K-16 bytes of extended memory.
- It can be accessed on 286 and up cpus in real mode because the address
- calculation logic does not wrap to location 0 from FFFFF, allowing a
- program to use the segment 'FFFF' to access memory up to 10FFF0. On
- the earlier 8088 and 8086 processors, the wrap to location 0 was used
- by some software. To maintain compatibility, system designers have
- included a way to make the newer cpus act like the older ones. It is
- a 'gate' that can allow the cpu's address line 20 ( A20 ) to be held
- to 0 ( emulating the behavior of the older cpus ), or to be passed
- through. With DOS 5, use of the HMA must be through a program which
- controls access to it by opening this gate for times the HMA must be
- accessed and closing it so that other programs cannot accidently get
- at the HMA. The DOS 5 program which performs this function is the
- device driver 'HIMEM.SYS'. Other programs such as QEMM, 386^MAX et.al.
- also provide this function. The HMA is managed as a total unit, i.e.
- only one program 'owns' it, and 'owns' it all. This is where most of
- DOS is placed when you use HIMEM.SYS and the 'DOS=HIGH' command. As
- stated before, when DOS is loaded 'high', no other program can use
- this portion of memory. The definition of this area and its use is
- standardized in the Extended Memory Specification ( XMS ) issued by
- Microsoft / Lotus / Intel / AST Research, although there is question
- as to where the credit for the 'discovery' of the area and its first
- useage in real mode should go.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 3
-
-
- INTRODUCTION continued
-
-
- EXTENDED MEMORY - Memory starting at 1M ( 100000 ) that is accessible by
- the cpu in protected mode. On a 286, this range extends up to 16M-1
- ( FFFFFF ), and on 386 and above cpus up to 16M-1 ( FFFFFF ) in 16-bit
- mode and up to 4G-1 ( FFFFFFFF ) in 32-bit mode ( not used by vanilla
- DOS, but possibly by some DOS extenders ). Under DOS, this memory is
- accessed in several ways:
-
- 1. BIOS INT 15H functions - This method is the oldest and least
- standardized, but requires no special drivers. Programs
- directly access the BIOS functions to utilize the memory, and
- must take great pains to avoid 'stepping on' other users -
- many different methods of 'marking' used memory exist, even
- not marking at all.
-
- 2. DOS EXTENDERS - These facilities are supplied by several vendors
- including Phar-Lap and others. They are included within a
- program and allow that program access to extended memory using
- the extender's own techniques ( usually in protected mode ).
-
- 3. XMS functions - This method is defined in the XMS standard that
- was mentioned earlier. It offers a way for many different
- programs to concurrently use extended memory easily without
- worrying about the underlying memory management problems.
- This method is the one used by all of the DOS 5 utilities that
- use extended memory to provide their services. A device driver
- is required to provide the XMS services. The DOS 5 driver is
- 'HIMEM.SYS'. QEMM and other programs also provide XMS access.
- Most XMS servers including HIMEM.SYS will allow some portion
- of extended memory to be left outside their control so that
- programs using the BIOS INT 15H method can still work. Note
- that DOS 5 *requires* XMS services to access the HMA to load
- the major part of itself 'high'.
-
- EXPANDED MEMORY - This is memory that conforms to the Expanded Memory
- Specification put out by Lotus / Intel / Microsoft. It is sometimes
- referred to as EMS, LIM 3.2, or LIM 4.0 memory. This type of memory
- is not directly addressable by the cpu, but requires use of additional
- facilities to be accessed. This memory is available via multiple 16K
- 'pages' in a ( usually ) 64K 'window' called the EMS base page area
- within the 'Upper Memory Area', starting somewhere between C0000 and
- E0000 on a 16K boundary. The cpu can access this 'window' in real mode
- and uses the support facilities to map different 'pages' into the
- 'window'. Although the cpu can only access EMS memory totalling the
- window size at any one time, it can 'move' the window to access all of
- the expanded memory available.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 4
-
-
-
- INTRODUCTION continued
-
-
-
- Expanded ( EMS ) memory can be implemented in several ways:
-
- 1. HARDWARE - Hardware support outside the cpu ( usually within the
- support chip set on the motherboard, or on an expansion slot
- card ) handles the mapping of the memory, controlled by a
- software driver which merely flips hardware 'switches', and the
- system runs under DOS in real mode with very little EMS
- management cpu overhead.
-
- 2. SIMULATED - This approach uses extended memory to simulate
- expanded memory by moving 16K pages back and forth between
- extended memory and the window ( usually *below* 640K, which
- reduces the base memory area by the window size ). Although it
- has the disadvantages of ( usually ) reducing base memory and
- increasing the EMS management cpu overhead, it runs in real
- mode on any 286 or higher processor without requiring anything
- more than a software driver. This is the only software option
- available for many 286 systems. An example of this type of
- driver is UMB_EMS4, distributed with this package ( which,
- by the way, does *NOT* reduce your DOS base memory, because it
- uses a 64K window in the upper memory area! ).
-
- 3. EMULATED - This technique is a sort of cross between 1 and 2. It
- uses the paging hardware built into 386 and newer processors
- in conjunction with virtual-86 mode to do the mapping tasks
- required to provide EMS memory. It is similar to 1 in that the
- mapping is really done by the hardware, and to 2 in that it
- also involves non-trivial software to provide the virtual-86
- mode environment necessary for it to work. Its advantages are
- that it works on any 386 or newer cpu without any other special
- hardware and does not reduce the base memory like 2, but it
- also has the drawback of restrictions, additional overhead and
- complexity introduced by virtual-86 mode. There are several
- packages that support this type of EMS, including EMM386.EXE
- supplied with DOS 5, and programs like QEMM, 386^MAX, NETROOM,
- and Memory Commander. Additionally, these EMS emulators can
- provide the Upper Memory Area using the same techniques, and
- generally are a good 'bang for the buck' in providing enhanced
- system functionality for a relatively modest impact on system
- processor overhead if you have the proper cpu.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 5
-
-
- INTRODUCTION continued
-
-
- UMB_DRVR.SYS is a DOS 5.0 device driver that will use the 'shadow
- ram' capability of the memory controller portion of many chip sets to:
- A) force all roms not specifically excluded to be shadowed, and
- B) expand DOS base memory beyond 640KB if possible, and
- C) provide UMBs ( Upper Memory Blocks ) to DOS for loading
- programs and device drivers into upper memory
- while *NOT* using any memory below 640K and remaining in *REAL* mode.
- One advantage of this driver is that many if not all other device
- drivers and TSR programs may be loaded 'high' including HIMEM.SYS ( even
- though the DOS documentation says not! ).
- A second advantage of using UMB_DRVR is that some device drivers
- that cannot be loaded high when a software EMS emulator is providing the
- Upper Memory Area because of their use of DMA I/O ( this includes some
- CD-ROM drivers, for example ) will work with UMB_DRVR.SYS. This has to
- do with the characteristics of virtual-86 mode, 386+ memory management
- facilities, and DMA hardware interactions. See MISCELLANEOUS NOTES - DMA
- ACCESS TO UPPER MEMORY for more information and possible restrictions.
- In addition, remaining in real mode allows programs that must be
- able to use protected or virtual-86 mode themselves, such as Borland's
- Turbo Debugger ( TD386.EXE / TDH386.SYS ), to operate as intended ( and
- yes, TDH386.SYS can be loaded high with no problems ).
- With respect to performance of UMB_DRVR.SYS versus the software EMS
- emulator EMM386.EXE supplied with DOS 5, here are some benchmark results
- supplied by a ( happy ) user:
-
- " System: 386SX 20Mhz, VLSI TOPCAT chip set, 4MB ram, no math processor.
- DOS version: MS/DOS 5.0 UMB_DRVR.SYS version: 5.09
- Benchmark: CHECKIT 3.0 main system benchmark.
-
- CONFIG.SYS Dhrystones Whetstones
- ------------------------------------ ---------- ----------
- None 3767 76.7K
-
-
- DEVICE=C:\UMB_DRVR.SYS /C=13 4042 77.1K
- DEVICEHIGH=C:\DOS\HIMEM.SYS
- DEVICEHIGH=C:\DOS\ANSI.SYS
-
-
- DEVICE=C:\DOS\HIMEM.SYS 3683 45.7K
- DEVICE=C:\DOS\EMM386.SYS NOEMS
- DEVICEHIGH=C:\DOS\ANSI.SYS
-
-
- As you can see, there is a significant difference when using UMB_DRVR,
- not to mention the extra memory saved below 640k. The benchmarks ran
- faster with UMB_DRVR than they did with no CONFIG.SYS at all. "
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 6
-
-
-
- INTRODUCTION continued
-
-
-
- The driver must be installed *BEFORE* HIMEM.SYS is installed. It is
- an XMS 2.0 server providing UMBs to DOS via that standard. The chip
- set parameter is processed and the proper routine called to remap the
- unused shadow ram to DOS-useable memory. Available memory starting at
- A0000 is used to expand DOS base memory beyond 640K, and other available
- memory ( i.e. above the video memory ) is used for UMBs ( the areas
- DOS uses for DEVICEHIGH or LOADHIGH commands ).
- The driver by default will not use any areas used for video memory.
- It also forces all roms including the system BIOS ( F0000-FFFFF ) to be
- shadowed unless forced to be excluded ( refer to MISCELLANEOUS NOTES for
- considerations concerning disk controllers and network cards ). If the
- BIOS has a 'boot page' at F0000-F7FFF that the driver can recognize
- ( containing system/CMOS setup code - AMI is one brand that has this ),
- that area will be mapped in as available upper memory since it is not
- needed after boot time.
- The driver should be loaded as the first driver if possible. This
- allows following drivers and resident programs to be loaded high - even
- HIMEM.SYS and EMM386.SYS ( DOS documentation says they can't, but it
- works; see MISCELLANEOUS NOTES - WINDOWS and EMS DRIVERS, however ). It
- will initialize, supply UMBs, and terminate leaving a small stub above
- 640K. To ensure proper chip set function, all warm boots ( CTL+ALT+DEL )
- will be forced to be cold boots after UMB_DRVR is installed.
- Appropriate status and error messages are issued during processing
- and a map of the driver's action is displayed.
- One of my systems is a 386SX with the Chips and Technologies NEATsx
- chip set and an AMI ( American Megatrends ) BIOS dated 04/09/90. It has
- 4MB of ram and a Hercules Monochrome Graphics card. I load DOS into the
- HMA using HIMEM.SYS, supply simulated EMS from the XMS memory pool using
- UMB_EMS4, and load Borland's Turbo Debugger device driver TDH386.SYS for
- 386 virtual debugging ( TD386.EXE ). Using UMB_DRVR defaults and loading
- all drivers ( except SETVER ) high gives me 704K base memory for DOS, a
- maximum executable program size of almost 689K and 224K in one UMB
- located at C0000-F7FFF with over 143K still free in that upper memory
- block for any other TSRs or drivers I may want to load. The following
- information is extracted from that system ( Note: 1K = 1024 decimal ).
-
-
- UMB_DRVR.SYS initializes showing:
-
-
- Chip-controlled ram at: AAAABBBBCCCCDDDDEEEEFFFF ([D]OS base memory,
- 048C048C048C048C048C048C [e]ms base page area,
- has been configured as: DDDDvvvvUUUUUUUUUUUUUUss [s]hadowed rom,
- DOS base memory expansion = 64K [U]pper memory area,
- Upper memory block ( UMB ) area = 224K [v]ideo, [-]excluded)
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 7
-
-
-
- INTRODUCTION continued
-
-
-
- The command 'MEM /C' displays the following:
-
-
- Conventional Memory :
-
- Name Size in Decimal Size in Hex
- ------------- --------------------- -------------
- MSDOS 12304 ( 12.0K) 3010
- SETVER 400 ( 0.4K) 190
- COMMAND 2624 ( 2.6K) A40
- FREE 64 ( 0.1K) 40
- FREE 705328 (688.8K) AC330
-
- Total FREE : 705392 (688.9K)
-
- Upper Memory :
-
- Name Size in Decimal Size in Hex
- ------------- --------------------- -------------
- SYSTEM 65712 ( 64.2K) 100B0
- HIMEM 1072 ( 1.0K) 430
- UMB_EMS4 73136 ( 71.4K) 11DB0
- TDH386 7920 ( 7.7K) 1EF0
- FREE 146976 (143.5K) 23E20
-
- Total FREE : 146976 (143.5K)
-
- Total bytes available to programs (Conventional+Upper) : 852368 (832.4K)
- Largest executable program size : 705184 (688.7K)
- Largest available upper memory block : 146976 (143.5K)
-
- 3080192 bytes total EMS memory
- 3080192 bytes free EMS memory
-
- 3145728 bytes total contiguous extended memory
- 0 bytes available contiguous extended memory
- 3080192 bytes available XMS memory
- MS-DOS resident in High Memory Area
-
-
- *NOTE* - If the video card were a CGA, the DOS base ram expansion
- would be 96K(!) with executable program size a whopping 721K(!)... a
- pretty good cure for 'ram cram'! These same results can ( and have been
- repeatedly ) achieved on *286* machines!
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 8
-
-
- MISCELLANEOUS NOTES
-
-
- BOOT PAGE
-
- If UMB_DRVR.SYS uses the 'boot page' area ( see INTRODUCTION for
- definition ) by default and your system crashes, you need to use the /M=
- parameter to force it to be part of the BIOS ( use '##' or '--' ). If no
- 'boot page' is recognized, you may still try the /M= parameter ( with
- '++' for F0000-F7FFF ) if you are brave enough. Heed the warning about
- having a bootable diskette, however - you may need it.
-
-
- EMS DRIVERS ( EMM386, QEMM, 386^MAX, NETROOM, MEMORY COMMANDER, ETC )
-
- If you run EMS, it is most efficient in terms of contiguous memory
- to have your EMS base address immediately following your video ram and
- any adjacent rom ( e.g. C0000-CFFFF for CGA or monochrome, C8000-D7FFF
- for VGA ) or at the top of the useable area ( e.g. E8000-F7FFF with a
- 'boot page', E0000-EFFFF without ).
- It is also more efficient in terms of cpu usage overhead to use the
- hardware EMS driver for your chip set or your EMS memory card instead of
- a software emulation; see INTRODUCTION ( virtual-86 mode, benchmark ).
- If you use an EMS driver ( hardware or software emulation ), you
- should use the /M= parameter to force UMB_DRVR to exclude the EMS base
- area. Make sure you *DO NOT* have your driver try to map in the upper
- memory ( 640K - 1M ) area ( other than the EMS base area ) - UMB_DRVR
- has done that already ( refer to your driver's documentation ). You
- should be able to use DEVICEHIGH/LOADHIGH to put your driver into upper
- memory in most cases.
- If you do not have an EMS driver, try UMB_EMS4 ( please refer to
- UMB_EMS4.DOC ). There have been some problems reported running EMM386
- with UMB_DRVR - I recommend against it. UMB_EMS4 should provide the
- services you need.
-
-
- ROMS THAT CANNOT BE SHADOWED ( DISK CONTROLLERS, NETWORK CARDS )
-
- Some roms cannot be shadowed by normal means because they have some
- ram or a memory-mapped I/O port they must use included in their address
- space ( e.g. some RLL, ESDI and SCSI disk controllers, and also some
- network cards ) and shadowing is done using protected ram. These roms
- will sometimes work when shadowed by this driver if they are within a
- protection block also containing UMBs. Try letting UMB_DRVR shadow the
- rom and see if it works. If your system hangs up or you have problems
- with disk or network access with the rom shadowed, you must use the /M=
- parameter to exclude it from UMB_DRVR.SYS control. Refer to CHIP-SET-
- SPECIFIC NOTES for any special considerations.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 9
-
-
- MISCELLANEOUS NOTES continued
-
-
- DMA ACCESS TO UPPER MEMORY
-
- DMA ( Direct Memory Access ) is a method of data transfer between
- main memory ( ram ) and I/O devices without requiring cpu intervention.
- Standard AT-compatible floppy disk controllers use it, as do some other
- devices, such as CD-ROMs and data acquisition hardware. It is supported
- through the Intel 8237A DMA controller chip, or by compatible integrated
- devices like the 82C206, or even by compatible components within the
- motherboard chip set. These devices control the data / address busses in
- the system to do the transfer while the cpu does other work. They do not
- have access to the internal 386+ cpu memory management facilities during
- their operation, and so are unaware of remapping of memory done there.
- Most of the time this is not a concern, as software that handles the
- remapping also handles DMA setup by intercepting accesses to the DMA
- controller registers and trying to keep things straight for DMA I/O.
- This can become a concern if the DMA transfer spans a page boundary that
- in virtual memory is to an adjacent page, but in real memory is not.
- Most of the 386-type mappers either automatically or through parameters
- try to avoid this situation by causing the area to be mapped ( as much
- as possible ) into contiguous memory.
- UMB_DRVR, on the other hand, uses hardware external to the cpu that
- maps in the upper memory area contiguously such that DMA access to the
- upper memory area is no different than to the base 640K. The DMA mapping
- requirememts that the device drivers are aware of for a 'standard AT'
- system do not change when UMB_DRVR provides the upper memory area. Note
- that some drivers still cannot load high because they are 'confused' by
- being at a higher address in memory than the program that is using them,
- but this is becoming much less common as drivers are rewritten to be
- able to take advantage of the DOS 5 high memory capabilities.
- One consideration remains, however: a *VERY* few chip sets that are
- supported by UMB_DRVR are designed such that the ram that is mapped into
- the upper memory area can only be accessed by the cpu. UMB_DRVR performs
- a test for proper DMA function at initialization and issues a warning
- message if DMA is not possible to the upper memory area. If ( and *ONLY*
- if ) this is the case, any DMA accesses attempted to an area above 640K
- and below 1M will not work, and the following restrictions will apply:
- (1) If you boot from a floppy disk or try to load any driver or
- TSR high reading it from a floppy, do not load UMB_DRVR.SYS -
- if you do, your system will probably hang up immediately upon
- trying to load anything into upper memory.
- (2) Almost no hard disk controllers use DMA, but if you have one
- that does, you will probably have problems with loading any
- driver or TSR into upper memory, and you may not be able to
- use UMB_DRVR at all.
- (3) Device drivers that use DMA for access to buffers within the
- driver itself, or allocated immediately after the driver when
- it initializes, cannot be loaded high on your system.
- (4) No DOS base memory expansion from unused video memory should
- be used ( all DOS base ram should be capable of DMA access ).
- Note that these restrictions apply *ONLY* if DMA access to upper
- memory is *NOT* available, i.e. if UMB_DRVR issues the warning message.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 10
-
-
- MISCELLANEOUS NOTES continued
-
-
- MICROSOFT WINDOWS
-
- Windows 3.0 and 3.0A have been tested as follows:
-
- 386 Enhanced mode:
- Windows will run in 386 enhanced mode with UMB_DRVR if the line
- EMMExclude=A000-FFFF
- is added to the SYSTEM.INI file, [386Enh] section. Note that a practical
- minimum of 4MB of ram on your system is suggested to run in this mode.
- Also note that SETVER.EXE must be loaded LOW, and ANSI.SYS ( if used )
- must be loaded LOW. There may be other drivers like this... experiment.
- Refer to UMB_EMS4.DOC for considerations regarding UMB_EMS4 and Windows.
-
- Standard mode:
- Windows in standard mode works with UMB_DRVR and HIMEM.SYS, with or
- without an EMS driver ( hardware or software ) loaded high or low. Note
- you must have a minimum of something like 512K or more extended memory
- to run in standard mode - i.e. do not have a software EMS driver remap
- ALL of your extended memory to expanded.
-
-
- PROGRAM ACCESS TO UPPER MEMORY WITH DOS 5 MANAGING UMBS
-
- 1. Record current status of memory system so you can restore it.
- int 21H/ax=5800h - returns al=strategy ( see below )
- int 21h/ax=5802h - returns al=UMB link state ( see below )
-
- 2. Set up for memory allocation / deallocation.
- int 21h/ax=5801h/bh=0/bl=strategy int 21h/ax=5803h/bh=0/bl=UMB status
- 00h - first fit, low memory 00h = remove UMBs from mem chain
- 01h - best " " " 01h = add UMBs to mem chain
- 02h - last " " " ( UMBs must be chained for access )
- 40h - first fit, high memory
- 41h - best " " "
- 42h - last " " "
- 80h - first fit, try high then low memory
- 81h - best " " " " " "
- 82h - last " " " " " "
-
- 3. Do normal int 21h/ah=48h, int 21h/ah=49h, int 21h/ah=4Ah as desired.
-
- 4. Restore values saved in step 1 above.
-
- The system defaults to first-fit-low with UMBs not chained. If you
- chain the UMBs, strategies 00/01/02 affect the entire chain. For example
- with the UMBs chained and strategy 00, you will get memory from the UMB
- area if the request cannot be satisfied from low memory.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 11
-
-
- DETERMINING YOUR CHIP SET
-
- If your system documentation or CMOS setup screen does not tell you
- what chip set you have, the best way to find out is to open the cover on
- your system and look at the motherboard. *MAKE SURE THE SYSTEM IS OFF
- AND UNPLUGGED* when you do this. The chip you will be looking for may
- not be one of the larger in size, but it will have many ( usually 80+,
- sometimes up to 200 or more ) pins. The number that identifies the key
- chip in the set is listed in CHIP-SET-SPECIFIC NOTES for each chip set
- supported. If you find a matching number on one of the chips on your
- motherboard, use the /C= value shown for that set. If you don't see a
- match, refer to the sections BAD NEWS, MAYBE?, and COMING ATTRACTIONS.
- Note that some chips only contain peripheral support and *DO NOT*
- indicate what chip set you have. These include, but are not limited to:
- 82C206 ( many brands )
- 82C601, 82C710, 82C711 ( Chips and Technologies )
- VL82C100, VL82C106, VL82C107, VL86C050, VL16C45x, VL16C55x
- ( VLSI Technology )
- 82C452, 85C206 ( Silicon Integrated Systems )
- TACT82206 ( Texas Instruments )
- Again, these chip numbers *DO NOT* indicate what chip set you have. If
- you find one of these on your motherboard, you should keep looking!
-
-
- CHIP-SET-SPECIFIC NOTES
-
-
- ****************************************
- * User-Specified Available Memory mode *
- ****************************************
- /C=00 - Chip ID(s): None ( 286, 386SX, 386DX, 486 )
-
- This selection causes UMB_DRVR to map the areas specified in the
- /M= parameter, using the '+' ( plus ) character, as upper memory. Please
- note the following points when using this mode:
- (1) This mode *CANNOT BE USED* unless you have a way to actually
- map read-write ram into the area between 640K ( A0000 ) and
- 1M ( 100000 ) through your CMOS setup or some other program
- provided by your system or chip-set manufacturer, or a memory
- expansion card that maps ram into that area on the AT bus.
- NOTE: The system BIOS brand 'MRBIOS' from Microid Research will
- include the capability to set up your memory this way if your
- chip set supports it.
- (2) No verification or manipulation of any chip set is done.
- (3) Rom shadowing is totally controlled by your system BIOS and
- CMOS setup parameters.
- (4) No checking is performed other than the memory read-write and
- DMA tests.
- (5) Warm boots are *NOT* forced to be cold boots.
- (6) It is *YOUR RESPONSIBILITY* to properly determine and specify
- which areas can be used.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 12
-
-
- CHIP-SET-SPECIFIC NOTES continued
-
-
- *******************************************************
- * Chips & Technologies CS8221 NEAT, CS8281 NEATsx, *
- * CS8223 LeAPset, CS8283 LeAPset-sx *
- * Texas Instruments TACT82S411 Single Chip AT *
- * United Microelectronics (UMC) UM82C210 286/386SX AT *
- *******************************************************
- /C=01 - Chip ID(s): ( C & T ) 82C212, 82C241 ( 286 )
- 82C812, 82C841 ( 386SX );
- ( TI ) TACT82S411 ( 286, 386SX );
- ( UMC ) UM82C212 ( 286, 386SX )
-
- These chip sets allow the 384k of motherboard ram at A0000-FFFFF to
- relocate to extended memory at 100000-15FFFF on systems with only 1mb of
- ram. If this remapping is enabled when UMB_DRVR.SYS enables this area,
- the remapping is removed and the size of your extended memory is reduced
- by 384k, i.e. it disappears. Note that this applies only to systems with
- *EXACTLY* 1MB of memory.
- These chip sets map in 16k segments, but write protection for the
- area C0000-FFFFF is in 64k segments. To allow maximum memory utilization
- the driver marks any segment containing UMBs as read/write. If the 64k
- segment also contains a rom shadow, it is not protected.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude any non-rom areas within the 64k segment
- ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
- UMB_DRVR.SYS will recognize the EMS setup for these chip sets and
- will exclude the EMS base segment if the EMS hardware is enabled when
- UMB_DRVR initializes. Use of the /M= parm is not required in this case.
-
-
- ****************************
- * VLSI Technology VL82C200 *
- ****************************
- /C=02 - Chip ID(s): VL82C201,VL82C202,VL82C203,VL82C204 ( 286, 386SX )
- ( all 4 chips required )
-
- This chip set uses a jumper or switch to enable shadow ram ability.
- This does not actually cause shadowing, but must be in proper position
- for UMB_DRVR.SYS to work. Check your system documentation.
- This chip set maps and protects in 64k segments. To allow maximum
- memory utilization, 64k segments containing UMBs are set to read/write.
- If the 64k segment also contains a rom shadow, it is not protected.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude any non-rom areas within the 64k segment
- ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
- If you must force a rom to be unshadowed, exclude the entire 64k
- segment on a 64k boundary ( e.g. for a disk rom at C8000-CBFFF, exclude
- C0000-CFFFF ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 13
-
-
-
- CHIP-SET-SPECIFIC NOTES continued
-
-
-
- *******************
- * FOREX FRX36C300 *
- *******************
- /C=03 - Chip ID(s): FRX36C300 ( 386DX )
-
- This chip set maps in 32k segments from C0000 to EFFFF, and one 64k
- segment for the system BIOS ( F0000-FFFFF ). Ram at A0000-BFFFF is
- always remapped to the highest area and cannot be used by the driver.
- Protection is set globally, meaning that all used ram ( shadow or UMBs )
- is marked read/write.
- The chip set also remaps D0000-EFFFF to the highest area if there
- is nothing shadowed in that area. When UMB_DRVR.SYS enables this area,
- the remapping is removed and the size of your extended memory is reduced
- by 128k.
- If you must force a rom to be unshadowed, exclude the entire 32k
- segment on a 32k boundary ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CFFFF ).
-
-
-
- *******************************************************************
- * Chips & Technologies CS8230 386/AT, CS8231 Turbo Cache 386/AT, *
- * CS8233 PEAKset/386, CS82310 PEAKset DM/386 *
- *******************************************************************
- /C=04 - Chip ID(s): 82C302, 82C307, 82C311, 82C351 ( 386DX )
-
- These chip sets maps in 16k segments, but write protection for the
- area C0000-FFFFF is in 64k segments. To allow maximum memory utilization
- the driver marks any segment containing UMBs as read/write. If the 64k
- segment also contains a rom shadow, it is not protected.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude any non-rom areas within the 64k segment
- ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 14
-
-
- CHIP-SET-SPECIFIC NOTES continued
-
-
- ******************************************************************
- * Chips & Technologies 82C235 SCAT, 82C836 SCATsx, CB8291 ELEAT, *
- * CB8295 ELEATsx, CS8285 PEAKset-sx, *
- * CS8227 CHIPSlite, CS8288 CHIPSlite-sx *
- ******************************************************************
- /C=05 - Chip ID(s): 82C235 ( 286 ), 82C836 ( 386SX )
-
- These chip sets allow the 384k of motherboard ram at A0000-FFFFF to
- relocate to extended memory at 100000-15FFFF on systems with only 1mb of
- ram. If this remapping is enabled when UMB_DRVR.SYS enables this area,
- the remapping is removed and the size of your extended memory is reduced
- by 384k, i.e. it disappears. Note that this applies only to systems with
- *EXACTLY* 1MB of memory.
- These chip sets map in 16k segments, but write protection for the
- area C0000-FFFFF is in 32k segments. To allow maximum memory utilization
- the driver marks any segment containing UMBs as read/write. If the 32k
- segment also contains a rom shadow, it is not protected.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude any non-rom areas within the 32k segment
- ( e.g. for a rom at C8000-CBFFF, exclude CC000-CFFFF ).
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
-
-
- ************************
- * ETEQ Micro COUGAR II *
- ************************
- /C=06 - Chip ID(s): 82C491 ( 386DX, 486 )
-
- This chip set maps in 16k segments from C0000 to EFFFF, and one 64k
- segment for the system BIOS ( F0000-FFFFF ). Memory protection is done
- in 64k segments from C0000 to EFFFF. The hardware does not allow read /
- write access to the area F0000-FFFFF - i.e. the rom can be shadowed and
- protected, but the driver cannot use the boot page. The driver also
- cannot use the ram at A0000-BFFFF.
- The chip set can remap A0000-BFFFF and D0000-EFFFF to the highest
- area if no shadowing is done in that area. If this remapping is enabled
- and UMB_DRVR.SYS enables the area D0000-EFFFF, the remapping is removed
- and the size of your extended memory is reduced by 256k.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude non-rom areas within the 64k segment:
- e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
- you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 15
-
-
- CHIP-SET-SPECIFIC NOTES continued
-
-
- ***************************
- * OPTi Sx/AT, Sx/AT Cache *
- ***************************
- /C=07 - Chip ID(s): 82C281, 82C282, 82C283 ( 386SX )
-
- These chip sets maps in 16k segments from C0000 to EFFFF, and one
- 64k segment for the system BIOS ( F0000-FFFFF ). Memory protection is
- in 64k segments from C0000 to EFFFF. The hardware does not allow read /
- write access to the area F0000-FFFFF - i.e. the rom can be shadowed and
- protected, but the driver cannot use the boot page. The driver also
- cannot use the ram at A0000-BFFFF.
- These chip sets can remap A0000-BFFFF and D0000-EFFFF to the high
- end of extended memory if no shadowing is done in either area. If this
- remapping is enabled and UMB_DRVR.SYS enables the area D0000-EFFFF, the
- remapping is removed and the size of your extended memory is reduced by
- 256k.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude non-rom areas within the 64k segment:
- e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
- you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
-
-
- ********************
- * OPTi DX/BB PC/AT *
- ********************
- /C=08 - Chip ID(s): 82C496 ( 386DX, 486 )
-
- This chip set maps in 16k segments from C0000 to EFFFF, and one 64k
- segment for the system BIOS ( F0000-FFFFF ). Memory protection is done
- in 64k segments from C0000 to EFFFF. The hardware does not allow read /
- write access to the area F0000-FFFFF - i.e. the rom can be shadowed and
- protected, but the driver cannot use the boot page. The driver also
- cannot use the ram at A0000-BFFFF.
- The chip set can remap A0000-BFFFF and D0000-EFFFF to the highest
- area if no shadowing is done in that area. If this remapping is enabled
- and UMB_DRVR.SYS enables the area D0000-EFFFF, the remapping is removed
- and the size of your extended memory is reduced by 256k.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude non-rom areas within the 64k segment:
- e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
- you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 16
-
-
- CHIP-SET-SPECIFIC NOTES continued
-
-
- ***********************************
- * OPTi 386WB PC/AT, 486SXWB PC/AT *
- ***********************************
- /C=09 - Chip ID(s): 82C391 ( 386DX ), 82C493 ( 486 )
-
- These chip sets maps in 16k segments from C0000 to EFFFF, and one
- 64k segment for the system BIOS ( F0000-FFFFF ). Memory protection is
- done in 64k segments from C0000 to EFFFF. The hardware does not allow
- read / write access to ram at F0000-FFFFF - i.e. the rom can be shadowed
- and protected, but the driver cannot use the boot page. The driver also
- cannot use the ram at A0000-BFFFF.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude non-rom areas within the 64k segment:
- e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
- you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
-
-
- ***********************
- * OPTi 386/486WB EISA *
- ***********************
- /C=10 - Chip ID(s): 82C682 ( 386DX, 486 )
-
- This chip set maps and protects in 16k segments at C0000-DFFFF, one
- 64k segment at E0000 and one 64k segment for the system BIOS at F0000.
- The the driver cannot use the ram at A0000-BFFFF.
- If one of the 64k segments contains both shadowed rom and UMB area,
- it is marked read/write. All roms in the C0000-DFFFF area are protected.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ) unless it is in the E0000 block or you wish to force the
- BIOS ( F0000-FFFFF) to be unshadowed. Then you must exclude the entire
- 64k block ( E0000-EFFFF and/or F0000-FFFFF ).
-
-
- ****************************************
- * Elite Microelectronics Eagle, Falcon *
- ****************************************
- /C=11 - Chip ID(s): e88C311 ( 386DX ), e88C411 ( 486 )
-
- These chip sets map and protect in 16k segments for the entire area
- C0000-FFFFF. All shadowed roms are write-protected. UMB_DRVR cannot use
- the ram at A0000-BFFFF.
- These sets always remap A0000-BFFFF to the highest memory area, and
- can selectively remap C0000-FFFFF in 64k blocks if no shadowing is done
- within the 64k block. If this remapping is active and UMB_DRVR enables
- shadow memory within one of the remapped 64k blocks, the remapping is
- removed and the size of your extended memory is reduced.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 17
-
-
- CHIP-SET-SPECIFIC NOTES continued
-
-
- *************************
- * VLSI Technology SCAMP *
- *************************
- /C=12 - Chip ID(s): VL82C310, VL82C311 ( 286, 386SX ), VL82C311L ( 286 )
-
- These chip sets map and protect in 32k segments for A0000-BFFFF,
- 16k segments for C0000-DFFFF, and 32k segments for E0000-FFFFF. If a
- rom shadow shares a 32k segment from E0000 to FFFFF with a UMB area, it
- is marked read/write. Any shadowed rom from C0000-DFFFF is protected, as
- is any 32k segment from E0000 to FFFFF that is all shadowed rom.
- These sets can remap A0000-FFFFF to the highest memory area if no
- shadowing is done and system memory is 1MB, 2MB, 3MB or 4MB. If remap
- is active and UMB_DRVR enables any shadow memory, the remapping is
- removed and the size of your extended memory is reduced. Note that this
- applies only to systems with *EXACTLY* 1MB, 2MB, 3MB or 4MB installed.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies if it is between C0000 and DFFFF ( e.g. for a
- disk rom at C8000-CBFFF, exclude C8000-CBFFF ). If it is between E0000
- and FFFFF, exclude all areas in the 32k segment ( e.g. for a disk rom at
- E0000-E3FFF, exclude E0000-E7FFF ).
-
-
- *********************************************
- * VLSI Technology VL82C286, VL82C386 TOPCAT * ( These sets are all made
- * Intel 82340SX, 82340DX * by VLSI Technology )
- *********************************************
- /C=13 - Chip ID(s): ( VLSI ) VL82C320 ( 286, 386SX ), VL82C330 ( 386DX )
- VL82C320A ( 286, 386SX, 486 )
- ( Intel ) 82343, 82346 ( 286, 386SX )
- 82343A ( 286, 386SX, 486 )
-
- These chip sets map in 16k segments for the entire area from A0000
- to FFFFF and protect in 16k segments from C0000 to FFFFF. All shadowed
- rom areas are protected. The video area ( A0000-BFFFF ) and the 'boot
- page' ( F0000-F7FFF ) can only be utilized on the VL82C320 / 82343 'A'
- revisions ( this implementation was chosen to avoid the DMA limitation;
- see MISCELLANEOUS NOTES - DMA ACCESS TO UPPER MEMORY ). UMB_DRVR will
- recognize the various chips and enforce these restrictions accordingly.
- These sets can remap A0000-FFFFF to the high end of extended memory
- if no shadowing is done and system memory is exactly 1MB or 2MB. If this
- remapping is active and UMB_DRVR enables shadow memory, the remapping is
- removed and the size of your extended memory is reduced. Note that this
- applies only if the system memory size is *EXACTLY* 1MB or 2MB.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 18
-
-
- CHIP-SET-SPECIFIC NOTES continued
-
-
- *******************************
- * OPTi HiD/386 AT, HiB/486 AT *
- *******************************
- /C=14 - Chip ID(s): 82C382 ( 386DX ), 82C482 ( 486 )
-
- These chip sets map in 16k segments from C0000 to EFFFF and one 64k
- segment for the system BIOS ( F0000-FFFFF ). Memory protection is done
- in 64k segments from C0000 to EFFFF. The hardware does not allow read /
- write access to the area F0000-FFFFF - i.e. the rom can be shadowed and
- protected, but the driver cannot use the boot page. The driver also
- cannot use the ram at A0000-BFFFF.
- The chip sets can remap A0000-BFFFF and D0000-EFFFF to the highest
- area if no shadowing is done in that area. If this remapping is enabled
- and UMB_DRVR.SYS enables the area D0000-EFFFF, the remapping is removed
- and the size of your extended memory is reduced by 256k.
- Although it should not be necessary, if you wish to have a rom be
- shadowed and protected, exclude non-rom areas within the 64k segment:
- e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
- you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
-
-
- *********************************************
- * Sun Electronics SUNTAC ST62CS24, ST62CS25 *
- *********************************************
- /C=15 - Chip ID(s): ST62C241 ( 286 ), ST62C251 ( 286, 386SX )
-
- These chip sets have two memory-mapping modes: one for extended
- memory and one for expanded ( EMS ) memory. You must have your system
- configured for extended memory only for UMB_DRVR to recognize the chip
- set. Also, some BIOSs ( e.g. newer AMI ) relocate the video rom before
- shadowing it. This can cause fragmentation of your upper memory. If this
- is the case, turn off video shadowing in your CMOS / extended setup. The
- driver will shadow your video rom when it sets up the upper memory area.
- See your CMOS setup or system documentation.
- These chip sets map and protect in 16k segments from C0000 to DFFFF
- and in 32k segments from E0000 to FFFFF. The driver cannot use the ram
- at A0000-BFFFF. All shadowed roms from C0000 to DFFFF and the system
- BIOS are protected.
- The chip sets always remap A0000-DFFFF to the highest area, and
- remap E0000-FFFFF there if no shadowing is done. UMB_DRVR must remove
- the remapping for E0000-FFFFF if active, and must use some extended
- memory to supply the upper memory area. Your extended memory size will
- be adjusted accordingly.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 19
-
-
- CHIP-SET-SPECIFIC NOTES continued
-
-
- *******************************
- * Texas Instruments TACT83000 *
- *******************************
- /C=16 - Chip ID(s): TACT83442 ( 386SX, 386DX, 486 )
-
- This chip set maps in 16k segments from A0000 to FFFFF, and memory
- protection is done in 16k segments from C0000 to FFFFF. All shadowed
- roms are protected.
- The chip set can remap any 64k segment from A0000 to FFFFF not used
- for shadowing to the upper end of extended memory. If this remapping is
- active and UMB_DRVR.SYS uses any of the remapped area, the remapping is
- removed and the size of your extended memory is reduced.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
-
-
- *****************************************************
- * Silicon Integrated Systems High Performance 80386 *
- *****************************************************
- /C=17 - Chip ID(s): 85C310 ( 386DX )
-
- This chip set maps in 16k segments from C0000 to DFFFF, and two 64k
- segments for E0000 and F0000. Memory protection is global, so no shadow
- areas are protected. The driver cannot use the area from A0000 to BFFFF.
- The chip set, depending on memory configuration, can remap either
- 256K or 384K of unused shadow area to the upper end of extended memory.
- If this remapping is active and UMB_DRVR uses any of the remapped area,
- the remapping is removed and your extended memory size is reduced.
- If you must force a rom to be unshadowed, you need only exclude the
- 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CBFFF ).
-
-
- ******************************************************
- * Silicon Integrated Systems High Performance ISA486 *
- ******************************************************
- /C=18 - Chip ID(s): 85C401 ( 486 )
-
- This chip set maps in 32k segments from C0000 to EFFFF, and one 64k
- segment for F0000. Memory protection is global, so no shadowed areas are
- protected. The driver cannot use the area from A0000 to BFFFF.
- If you must force a rom to be unshadowed, you must exclude the 32k
- segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
- C8000-CFFFF ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 20
-
-
- INSTALLATION
-
- *PLEASE BE SURE YOU HAVE REVIEWED THE MISCELLANEOUS AND CHIP-SET-
- SPECIFIC NOTES* prior to installing. Also, make sure you have backed-up
- your system and that you have a diskette you can boot from in case you
- have problems with your CONFIG.SYS settings.
- Installation ( preferably as the first driver ) is via the lines:
-
- DEVICE=UMB_DRVR.SYS /C=nn [/M=ssssssssssssssssssssssss]
- DOS=[HIGH|LOW],UMB ( *REQUIRED* - turn on DOS 5 UMB support )
-
- in your CONFIG.SYS file. The /C= parameter is required - nn is the chip
- set from 'CHIP-SET-SPECIFIC NOTES'. The /M= parameter is optional and is
- used to override defaults. It contains characters corresponding to 16K
- memory blocks at the following addresses:
-
- /M=ssssssssssssssssssssssss
- A0000'||||||||||||||||||||||`FC000---| Only '..' and '--' may be
- A4000'||||||||||||||||||||`F8000----| used for the system BIOS.
- Video A8000'||||||||||||||||||`F4000--|
- RAM AC000'||||||||||||||||`F0000---| '..', '--', '++', and '##'
- area B0000'||||||||||||||`EC000 | may be used for boot page.
- B4000'||||||||||||`E8000 | Use '##' to force area to be
- B8000'||||||||||`E4000 | shadowed as part of BIOS.
- BC000'||||||||`E0000
- |||||||`DC000
- ||||||`D8000 Upper
- |||||`D4000 Memory
- ||||`D0000 area
- |||`CC000
- ||`C8000
- |`C4000
- `C0000
-
- s = '.' Allow default use of block
- '-' Force block to be unused and unshadowed
- '+' Force block usage for UMBs or DOS base ram expansion
-
- The /M= parameter must always be supplied as all 24 characters, using
- the '.' character to fill any positions not forced on or off. For
- example, on a VGA system using video memory from A0000 to BFFFF, if
- it is in CGA 80 x 25 mode, the only video memory in use is B8000-BFFFF.
- In this case, the memory from A0000-AFFFF may be used to expand DOS
- base memory beyond 640K ( with some VGA cards ) by using the parameter:
- /M=++++....................
- Of course, with the system configured like this, if you change the video
- mode, undefined ( read as disaster city! ) results will occur.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 21
-
-
- ERROR MESSAGES
-
-
- DMA NOT SUPPORTED ( WARNING )
-
- See MISCELLANEOUS NOTES - DMA ACCESS TO UPPER MEMORY.
-
-
- SHADOW RAM TEST FAILURE
-
- This message is issued when the shadow ram read/write test fails.
- It is usually an indication that you are trying to use memory that is
- not available, or ( possibly ) you do not have the chip set you have
- specified. Check your CMOS setup and any jumpers or switches per your
- hardware documentation. Also review CHIP-SET-SPECIFIC NOTES earlier in
- this document for any requirements.
- This can also occur if you are trying the example listed in the
- INSTALLATION section using a portion of the video ram area on a VGA
- system in CGA mode and your VGA hardware will not allow it.
-
-
- CHIP SET NOT RECOGNIZED
-
- As much as possible, UMB_DRVR.SYS tries to verify that you have the
- chip set you indicated in the /C= parameter. If you are sure you have
- the chip set and have correctly specified it, contact me ( see TECHNICAL
- SUPPORT ) and I will try to straighten things out.
- This message can also occur if a program ( e.g CMOS setup from DOS,
- disk defragger ) reboots the system in a certain way. In this case, it
- can be cleared with the reset button or by power down / power up.
-
-
- XMS ALREADY INSTALLED
-
- You have not installed UMB_DRVR.SYS before HIMEM.SYS ( UMB_DRVR.SYS
- issues message ), or you have omitted or incorrectly specified the line
- 'DOS=xxxx,UMB' in your CONFIG.SYS ( HIMEM.SYS issues message ). Correct
- your CONFIG.SYS file and and reboot.
-
-
- INCORRECT DOS VERSION
-
- UMB_DRVR.SYS requires MS/DOS 5.0 for proper operation.
-
-
- INVALID PARAMETER(S)
-
- On the DEVICE= statement for UMB_DRVR.SYS you have: 1) omitted or
- incorrectly specified the /C= parameter, 2) incorrectly specified the
- /M= parameter, or 3) included extra parameter(s).
- Check that you have entered the proper 2-digit number for your chip
- set, that ( if specified ) the /M= parameter contains 24 characters from
- the set '.' (period), '-' (minus), '+' (plus) and '#' (pound sign), and
- that nothing else is specified. Correct your CONFIG.SYS file and reboot.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 22
-
-
- BAD NEWS ( CHIPS THAT WILL NOT BE SUPPORTED )
-
- Chips & Technologies: CS8220(82C201/82C202) [1]
- Intel: 82335/82335SX [2]
- Sun Electronics ( SUNTAC ): ST62CS02(ST62BC002) [1]
- United Microelectronics ( UMC ): UM82C230(UM82C231) [1]
- Western Digital: ( Faraday ) FE3021/FE3021A [2]
-
- Notes:
- [1] - No shadow ram support
- [2] - Lock feature prohibits access
-
-
- MAYBE? ( NEED TECHNICAL DATA TO SUPPORT )
-
- ACER
- American Megatrends (AMI) - Megatrends custom chips, *NOT* BIOS
- COMPAQ
- IBM PS/2
- Micronics - custom chips
- PC-Chips brand chip set(s)
- Toshiba
-
- I have been unable to get any documentation for these systems. If
- you can have your system vendor or the chip set manufacturer
- contact me, I will try to include support for them.
-
-
- COMING ATTRACTIONS ( SUPPORT PLANNED OR UNDER DEVELOPMENT )
-
- ACC Microelectronics: 2036 [2], 2046
- Headland Technology: HT12/HT15 [1], HT18/HT21/HT22 [2], HT322
- Intel: 82350 EISA(82359), 80386SL(Intel386SL)
- OPTi: L1/L2 Notebook
- Symphony Laboratories: SL82C360(SL82C361), SL82C460(SL82C461)
- Texas Instruments: TACT84500 EISA(TACT84542)
- United Microelectronics ( UMC ): UM82C380(UM82C384) [1]
- VLSI Technology: VL82C486
- Western Digital: WD6000/WD75C10/WD76C10/WD7710/WD7910 [1]
- ZyMos Corporation: POACH(82C230/82C231)
-
- Notes:
- [1] - Support minimal ( maximum 64K UMB area ).
- [2] - Support limited ( maximum 128K UMB area ).
-
- If your chip set is not listed, have your system vendor or the chip
- set manufacturer contact me and I will try to support it.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 23
-
-
-
- COMING ATTRACTIONS ( SUPPORT PLANNED OR UNDER DEVELOPMENT ) continued
-
-
-
- A newer, more flexible ( read as less Neanderthal, approaching the
- Bronze Age ) user interface is coming as soon as I get the time.
-
- Also in the works are features to save even more precious memory
- below 640K by:
- - loading the primary shell ( COMMAND.COM ) into upper memory
- - relocating all DOS areas possible to upper memory, including
- FCBS=, FILES=, BUFFERS=, STACKS=, and LASTDRIVE=
- - allowing the lower portion of the video ram area to be switched
- in and out to expand DOS base ram beyond 640K but not inhibit
- graphics modes ( only for chip sets with video area support )
-
- I have ( I think ) found a way to *reliably* test for and list the
- chip set in a machine. I will be including a separate program to do this
- in the package soon. Of course, it will only recognize the chip sets it
- supports, so a negative result will not necessarily mean you have a chip
- set that will not be supported later.
-
- If there is enough interest, I will also write device-specific EMS
- drivers for the hardware facilities in the EMS-capable chip sets. Please
- Email or surface mail your thoughts ( no phone calls on this, please -
- save those for support questions ).
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 24
-
-
-
- REVISION HISTORY
-
-
-
- 5.22 [02/20/92] - 'Unbroke' cache systems broken in 5.17;
- ( Hopefully ) improved handling of false parity
- errors during processing;
- Added code to handle boot page for MR BIOS;
- Fixed handling of certain embedded video roms;
- Released UMB_EMS4 EMS simulator.
-
- 5.21 [02/03/92] - Added 'User-Specified Available Memory' mode;
- Revised doc for Windows 386 Enhanced mode.
- 5.20 [01/15/92] - Important restriction noted for SUNTAC chip sets;
- Fix for warm boot intercept on all chip sets
- ( by George, I think he's got it! ).
- 5.19 [01/14/92] - Added Silicon Integrated Systems 80386, ISA486;
- Fix for warm boot intercept on all chip sets
- ( this is getting really frustrating! ).
- 5.18 [01/09/92] - Fix for warm boot intercept on all chip sets to
- allow any disk cache to flush its buffers;
- 32K more upper memory with VGA on some chip sets.
- 5.17 [01/06/92] - Added Texas Instruments TACT83000;
- Fix for detection of expansion roms ( all sets ),
- warm boot failures on certain BIOSs;
- Found 16K to 32K more upper memory on some BIOSs.
- 5.16 [12/30/91] - Fix for warm boot failure with another BIOS type;
- Internal code restucturing in preparation for
- future enhancements;
- Introduction amplified to include tutorial on
- different types of extended / expanded / upper
- memory management.
- 5.15 [12/24/91] - Added Sun Electronics SUNTAC ST62CS24, ST62CS25;
- Fixes for parity errors during DMA test and warm
- boot failures with some BIOS implementations.
- 5.14 [11/27/91] - Relaxed all chip-set-verification checks to avoid
- problems accepting some BIOS setups as valid.
- 5.13 [11/23/91] - Added Texas Instruments TACT82S411, UMC UM82C210;
- Added DMA verification code and warning message;
- Documentation expanded and reorganized (again!).
- 5.12 [11/19/91] - Fix for OPTi HiD/386, HiB/486 memory remapping.
- 5.11 [11/17/91] - Fixes for OPTi Sx/AT, Sx/AT Cache, DX/BB PC/AT;
- Relaxed validation check for Chips & Technologies
- CS8230, CS8231, CS8233, and CS82310;
- Documentation updated for various chip set IDs
- from Chips and Technologies.
- UMB_DRVR.DOC Version 5.22 02/20/92 Page 25
-
-
-
- REVISION HISTORY continued
-
-
-
- 5.10 [11/12/91] - Added Chips & Technologies PEAK/DM,
- OPTi Sx/AT Cache, HiD/386 AT, HiB/486 AT;
- Fixes for VLSI Technology TOPCAT / Intel 82340,
- special conditions remapping extended memory
- on Chips & Technologies NEAT, LeAPset and SCAT,
- miscellaneous logic improvements;
- Documentation updated and reorganized.
- 5.09 [10/25/91] - Fix for VLSI Technology TOPCAT / Intel 82340.
- 5.08 [10/14/91] - Fix for boot page special condition.
- 5.07 [10/13/91] - Added VLSI Technology SCAMP,TOPCAT / Intel 82340.
- 5.06 [10/12/91] - Added Elite Microelectronics Eagle, Falcon.
- 5.05 [10/09/91] - Added OPTi Sx/AT, DX/BB PC/AT, 386WB PC/AT,
- 486SXWB PC/AT, 386/486WB EISA.
- 5.04 [10/02/91] - Added ETEQ Micro COUGAR II.
- 5.03 [09/21/91] - Added Chips & Technologies 386/AT,
- 386/AT Cache, PEAK, SCAT, ELEAT;
- Removed setup requirements.
- 5.02 [09/12/91] - Added FOREX FRX32C300;
- Added support for use of 'boot page' area;
- Fix for VLSI Technology VL82C200;
- Default all roms shadowed.
- 5.01 [09/04/91] - Added VLSI Technology VL82C200.
- 5.00 [09/01/91] - Support for Chips & Technologies NEAT, LeAPset;
- Original release version.
-
- ***** END OF DOCUMENTATION *****
- UMB_DRVR.SYS, Version 5.22 [ 02/20/92 ] Registration Form
- ***** Please Type or Print Clearly *****
-
-
- Name:____________________________________________________
-
- Address:_________________________________________________
-
- _________________________________________________
-
- City/State_______________________________________________
-
- Zip/Postal Code__________________________________________
-
-
-
- ***** Telephone number_________________________________________
- * *
- * * Email system / routing / ID______________________________
- * *
- * * ____________________________________________________
- * *
- * O * Computer description, configuration, chip set, etc.
- * *
- * P * ____________________________________________________
- * *
- * T * ____________________________________________________
- * *
- * I * ____________________________________________________
- * *
- * O * Comments_________________________________________________
- * *
- * N * ____________________________________________________
- * *
- * A * ____________________________________________________
- * *
- * L * ____________________________________________________
- * *
- * * ____________________________________________________
- * *
- * * ____________________________________________________
- * *
- ***** ____________________________________________________
-
-
-
- Cost ( U.S.Funds ): $25 ( no credit cards )
-
- Mail to: Christopher Blum
- 1022 East Wayne Avenue
- Wooster, Ohio 44691